Hi, thanks for the response at first.
I've followed your advice and created separate XCFramework for every static library. This is a structure I'm having:
libStatic.xcframework: Info.plist ios-arm64 libStatic.a ios-x86_64-simulator libStatic.a
I don't include headers and leave it into the framework, because the library have so many C files and it is hard for me process which header belongs to concrete lib(Will try to fix that, could this leads to issue?)
Unfortunately here comes another issue. I've set ONLY_ACTIVE_ARCH to NO as I think the value should be(Is that correct by the way?) and there are warning and an error:
First the warning:
ignoring file libstatic.a, building for iOS Simulator-arm64 but attempting to link with file built for iOS Simulator-x86_64
Then the error:
Undefined symbols for architecture arm64:
"_RAND_seed", referenced from:
Which leads me to conclusion, that there is no support for arm64 simulator. I've tried to add a arm64 simulator binary, but in the xcframework generation comes this error:
Both ios-x86_64-simulator and ios-arm64-simulator represent two equivalent library definitions.
I was reading, that in this case we need to create fat binary with both arm64 and simulator slices.
Also was thinking should DTS be created for that.
Post
Replies
Boosts
Views
Activity
Yes, we are developing the static libraries, so it is good to know, that we can do that.
We've managed to create successful build, I will not do a DTS, but will post my solution and if possible will love some feedback from you @edford:
Here is a small script I've created. It presumes, that static libs for a given platform are already put into the corresponding directories
shell
#!/bin/bash
rm -rf output/
rm -rf simulator_fat/
mkdir simulator_fat
libs=( "lib_static" ) #Add
for i in "${libs[@]}"
do
lipo -create arm64_simulator/$i.a x86_64/$i.a -output simulator_fat/$i.a
xcodebuild -create-xcframework -library simulator_fat/$i.a -library arm64/$i.a -output output/$i.xcframework
done
The XCFramework now has the following structure:
lib_static.xcframework: Info.plist
ios-arm64_x86_64-simulator
- lib_static.a #This is the fat lib I mentioned ios-arm64
- lib_static.a
In that way ONLY_ACTIVE_ARCH and EXCLUDED_ARCHS are not problem anymore.
Thanks a lot @edford
Hi there! I see a few bug reports similar to this internally. Have you filed this already on feedback assistant? Also what macOS version are you running?
I'm running macOS Big Sur (11.3.1) on M1 Mac Mini
Didn't created feedback because of official holiday in my country. Will try to do it today.
After some research my issue was found in release notes of iOS:
https://developer.apple.com/documentation/ios-ipados-release-notes/ios-ipados-15-beta-release-notes
Using dispatch semaphores in an iOS app running in a device simulator on a Mac with Apple silicon running macOS 11 will cause the app to crash. (81783378)
I'm using semaphore in my application, and that rings a bell into my head.
And there is workaround for it:
Workaround: In Xcode, select Product > Scheme > Edit Scheme, then deselect Run > Options > Queue Debugging > “Enable backtrace recording.”
After that everything seems to work normal.
Hey guys see my answer below. Hope it helps :)
By Go to Root view I mean go back to View1